package com.gaocf.designpatterns.structure.adapter;

/**
 * 客户端
 * 适配器设计模式
 * 两种实现方式
 * 1.类方式  继承被适配器的类，并实现目标接口
 * 2.对象组合方式  实现目标接口，被适配类作为适配器的属性
 * java.io.InputStreamReader(InputStream) StreamDecoder
 * java.io.OutputStreamWriter(OutStream) StreamEncoder
 */
public class Client {
    public void test(Target t) {
        t.handleReq();
    }

    public static void main(String[] args) {
        Client c = new Client();
        Target t = new Adapter();
        c.test(t);

        Adaptee adaptee = new Adaptee();
        t = new Adapter2(adaptee);
        c.test(t);
    }
}
